$(document).ready(function () {

    var tradeUrl = 'http://test1.com/index/trade/index.html'

    var cartMain = $('.cart-main') //购物车信息主体
    var info = $(".cart-main .product-info") //单个商品信息
    var checkInputs = $('.check') //全部勾选框
    var checkAllInputs = $('.check-all') //全选框
    var foot = $('#cart-foot') //底部总结
    var selectedTotal = $('#selectedTotal') //已选商品
    var selected = $('#selected') //选择商品数量总计
    var priceTotal = $('#priceTotal') //选择商品价格总计
    var selectedViewList = $('#selectedViewList') //已选商品总览
    var deleteAll = $('#deleteAll') //删除选中按钮
    var closing = $('#closing') //结算按钮
    /* 判断全选 */
    var allNum = info.length //商品条目数
    var num = info.length //已选商品条目数

    //信息提交表单
    var form = $('#form')
    

    //默认全选
    checkInputs.each(function () {
        $(this).attr('checked', true)
    })

    //删除商品后重载部分数据
    function deleteReload() {
        info = $(".cart-main .product-info")
        checkInputs = $('.check')
        num = allNum = info.length
        getTotal()
    }

    // 小计
    function getSubTotal(obj) {
        var parent = obj.parent()
        var price = parseFloat(parent.siblings('.product-price').children('span').html())
        var count = parseInt(obj.siblings('input').val())
        var SubTotal = parseFloat(price * count)
        parent.siblings('.product-sum').children('span').html(SubTotal.toFixed(2))
    }

    // 总计
    function getTotal() {
        var seleted = 0
        var price = 0
        var HTMLstr = ''
        for (var i = 0, len = allNum; i < len; i++) {
            if (info.eq(i).find('.check-one').prop('checked')) {
                info.eq(i).addClass('on')
                seleted += parseInt(info.eq(i).find('.num-input').val())
                price += parseFloat(info.eq(i).children(':eq(5)').children('span').html())
                HTMLstr += '<div><img src="' + info.eq(i).find('img')[0].src + '"><span class="del" index="' + i + '">取消选择</span></div>'
            }
            else {
                info.eq(i).removeClass('on')
            }
        }

        selectedTotal.html(seleted)
        priceTotal.html(price.toFixed(2))
        selectedViewList.html(HTMLstr)
    }

    // 点击全选
    $('.check-all').click(function () {
        if ($(this).prop('checked')) {
            num = allNum
        } else {
            num = 0
        }
        checkInputs.prop('checked', $(this).prop('checked'))
        getTotal()
    })

    // 点击单选
    $('.check-one').click(function () {
        if ($(this).prop('checked') == true) {
            num += 1
            if (num == allNum) {
                checkAllInputs.prop('checked', true)
            }
        } else {
            num -= 1
            checkAllInputs.prop('checked', false)  
        }
        getTotal()
    })

    // 绑定事件 保证js添加dom后正常使用
    cartMain.on('click', '.product-num span', function(){
        var cls    = $(this).attr('class')
        var input  = $(this).siblings('.num-input')
        var val    = parseInt(input.val())
        var reduce = $(this).parent().children('.num-reduce')
        switch (cls) {
            case 'num-add':
                input.val(val + 1)
                reduce.html("-")
                getSubTotal($(this))
                break
            case 'num-reduce':
                if (val > 1) {
                    input.val(val - 1)
                }
                if (input.val() <= 1) {
                    reduce.html('')
                }
                getSubTotal($(this))
                break
            default :
                break
        }
        // 可以添加ajax同步数据库信息
        getTotal()
    })

    cartMain.on('keyup', '.product-num input', function(){
        var val    = parseInt($(this).val())
        var reduce = $(this).siblings('.num-reduce')
        if (isNaN(val) || val < 1) {
            val = 1
            $(this).val(val)
        }
        if (val <= 1) {
            reduce.html('')
        }
        else {
            reduce.html('-')
        }
        getSubTotal($(this))
        getTotal()
    })

    $('.delete-one').click(function () {
        $(this).closest('.product-info').remove()
        deleteReload();
        // var conf = confirm('确定要删除吗？')
        // if (conf) {
        //     var div = $(this).closest('.on')
        //     var cartId = div.attr('cartId')
        //     $.ajax({
        //         cache: false,
        //         type : POST,
        //         url  : {url('index/cart/delete')},
        //         data : cartId,
        //         async: false,
        //         success: function(data) {
        //             if (data.code) {
        //                 div.remove()
        //                 alert('删除成功')
        //             } else {
        //                 alert(data.msg)
        //             }
        //         },
        //         error: function (request) {
        //             alert('页面错误')
        //         }
        //     })
        // } 
    })

    $('#deleteAll').click(function () {
        // $('.cart-main .on').remove()//可通过ajax同步服务器
        var url = $('#deleteAll').attr('url')
        // deleteReload()
        // getTotal();
        var conf = confirm('确定要删除吗？');
        if (conf) {
            var ids = '';
            $('.cart-main .on').each(function (){
                ids += $(this).find('input').eq(0).attr('gId') + ','
            })
            ids = ids.substring(0, ids.length-1)
            var param = {
                ids : ids 
            }

            alert(ids)
            // $.ajax({
            //     cache: true,
            //     type : "POST",
            //     url  : url,
            //     data : data,
            //     async: false,
            //     success: function(data) {
            //         if (data.code) {
            //             alert(111)
            //         } else {
            //             alert(222);        
            //         }
            //     },
            //     error: function (request) {
            //         alert('页面错误');
            //     }
            // });
        };
    })

    // 显示已选商品图标
    selected.click(function () {
        if (selectedTotal.html() != 0) {
            foot.toggleClass('show')
        }
    });

    //单个取消已选商品
    selectedViewList.on('click', 'span', function () {
        var index = $(this).attr('index')
        info.eq(index).find('.check-one').trigger('click')

    })

    //结算按钮
    closing.click(function () {
        if (confirm('确定要提交吗')){
            form.submit()
        }
    })

    //构造提交信息，json格式
    form.submit(function () {
        var formStr = ''
        var formJson = []
        for (var i = 0, len = allNum; i < len; i++) {
            if (info.eq(i).find('.check-one').prop('checked')) {
                var row = {}
                row.gid = info.eq(i).find('.check-one').attr('gId')
                row.num = parseInt(info.eq(i).find('.num-input').val())
                formJson.push(row)
            }
        }
        formStr = JSON.stringify(formJson)
        form.find('#formStr').val(formStr)
    })

    getTotal()
})